<?php
/**
 * Created by PhpStorm.
 * User: yuanxr
 * Date: 2018/6/10
 * Time: 上午8:17
 */

namespace Utility\Test;
use Utility\Gen;
/**********************************************************************************************************************
 * /ET：用于效率测试(efficiency test)
 **********************************************************************************************************************/
class ET
{
    private $start = 0;		// 用于记录开始时间戳
    private $part = 0;    // 用于记录段落数
    private $last = 0;		// 最后一次统计的时间戳

    private $_Gen;

    function __construct(){
        $this->_Gen = new Gen();
    }

    /**
     * start
     *
     * @return float 开始计时，并返回开始时间戳
     */
    public function start()
    {
        $this->start = time();
        $this->last = $this->_Gen->time14();
        return $this->start;
    }

    /**
     * count
     *
     * @return void 进行一轮统计，并返回本次统计时间与前次统计时间的间隔（主要用于生成日志）
     */
    public function count()
    {

        // 记录当前时间
        $current = $this->_Gen->time14();

        // 计算用时
        $result =  round($current - $this->last, 2);

        // 为part + 1
        $this->part ++;

        // 记录当前时间
        $this->last = $current;

        // 返回
        return $result;
    }

    /**
     * echo
     *
     * @param string $name 为该次统计命名，默认空串
     * @return void 进行一轮统计，并格式化输出到页面。主要用于页面效率测试
     */
    public function echo(string $name = '')
    {

        // 获取输出名称
        $name = $name !='' ? $name : '段落' . $this->part;

        // 记录当前时间
        $current = $this->_Gen->time14();
        
        // 计算并输出本段代码用时
        echo '<span style="color:red"><b>' . $name . '</b>：用时：' . round($current - $this->last, 2) . ' 毫秒</span><br />';

        // 为part + 1
        $this->part ++;

        // 记录当前时间
        $this->last = $current;
    }
}
